home *** CD-ROM | disk | FTP | other *** search
/ GFX Sensations 1 / Graphic Sensations - Volume 1.iso / tools / amiga / gfx_card / fnamer1.lha / FrameNamer.oprx < prev   
Encoding:
Text File  |  1994-05-22  |  9.7 KB  |  392 lines

  1. /*                              */
  2. /*        FrameNamer v1         */
  3. /*                              */
  4. /*      by Carmen Rizzolo       */
  5. /*                              */
  6.  
  7. Options Results
  8. Address 'OpalPaint_Rexx'
  9.  
  10. Version
  11. Parse Var Result VerThingy ' ' OpalName ' ' VersionNum ' ' DateNum
  12.  
  13. If Left(VersionNum,3) < 2.3 Then Do
  14.     AskBool 'It appears that you are using OpalPaint v' || VersionNum || '\n\nFrameNamer requires OpalPaint v2.3 or higher\n\nShall I continue?'
  15.     If Result = 0 Then Do
  16.         Okay 'Exiting...'
  17.         Exit
  18.         End
  19.     End
  20.  
  21. AnimPathDefault = "Pathname"
  22. Zero = '0'
  23. GoBool = 1
  24.  
  25. Menu DISABLE
  26.  
  27. Call ConfirmFrameNamer()
  28. Call GetAnimPath()
  29. Call GetSourceFormat()
  30. Call GetDestinationFormat()
  31. Call GetStartFrame()
  32. Call GetEndFrame()
  33.  
  34. If SourceRoot = DestRoot & SourceNumberMode = DestNumberMode & SourceExt = DestExt Then GoBool = 0
  35.  
  36. If GoBool = 1 Then Do
  37.     Call VerifyFrames()
  38.     Call RenameFrames()
  39.     Call AllDone()
  40.     End
  41.  
  42. If GoBool = 0 Then Do
  43.     Call NoChanges()
  44.     End
  45.  
  46. Exit
  47.  
  48. ConfirmFrameNamer:
  49.     Address 'OpalPaint_Rexx'
  50.  
  51.     ReqBuild '420 130 " "'
  52.     AddBox '10 10 400 110'
  53.     AddBox '15 15 5 5 Raised'
  54.     AddBox '-20 15 5 5 Raised'
  55.     AddBox '15 -20 5 5 Raised'
  56.     AddBox '-20 -20 5 5 Raised'
  57.     AddBox '47 -53 106 31'
  58.     AddBox '-153 -53 106 31'
  59.     AddHeading 'CenterX 20 "FrameNamer v1"'
  60.     AddHeading 'CenterX 35 "an Arexx script for OpalPaint v2.3 or higher"'
  61.     AddHeading 'CenterX 45 "by Carmen Rizzolo"'
  62.     AddGadget 'Button YesButton 50 -25 Medium "Continue"'
  63.     AddGadget 'Button NoButton -50 -25 Medium "Quit"'
  64.  
  65.     Request NoOK NoCancel
  66.  
  67.     GadgetStatus NoButton
  68.     If Result = 1 Then Do
  69.         Exit
  70.         End
  71.     Return
  72.  
  73. GetAnimPath:
  74.     Address 'OpalPaint_Rexx'
  75.     PathWarn = 1
  76.  
  77.     Do Forever
  78.         LeaveBool = 1
  79.         ReqBuild '450 161 "Choose animation pathname"'
  80.         AddBox '10 23 430 105'
  81.         AddText 'CenterX 29 "NOTE: Pathnames must end with a / character"'
  82.  
  83.         AddText 'CenterX 50 "Pathname"'
  84.         AddGadget 'String ReqAnimPathName CenterX 60 Large'
  85.         AddGadget 'Button SourceReq 25 60 80 20 " "'
  86.         AddBox '22 57 86 26'
  87.         AddHeading '29 67 "REQUESTOR"'
  88.  
  89.         AddGadget 'Button OKButton CenterX -5 Medium "Proceed"'
  90.  
  91.         InitGadget 'ReqAnimPathName ' || AnimPathDefault
  92.  
  93.         Request NoOK NoCancel
  94.  
  95.         GadgetStatus ReqAnimPathName
  96.         AnimPathName = Result
  97.  
  98.         GadgetStatus SourceReq
  99.         If Result = 1 Then Do
  100.             If PathWarn = 1 Then Do
  101.                 ReqBuild '369 76 " "'
  102.                 AddBox '5 5 358 65'
  103.                 AddText 'CenterX 10 "NOTE: You are about to use a file requestor"'
  104.                 AddText 'CenterX 20 "to choose a PATHNAME.  Do not select any"'
  105.                 AddText 'CenterX 30 "filenames.  Get the pathname only!"'
  106.                 AddGadget 'Button Okeedoke CenterX 40 Medium "Proceed"'
  107.                 Request NoOK NoCancel
  108.                 PathWarn = 0
  109.                 End
  110.             AskFileName 'Get SOURCE animation PATHNAME' "OpalPaint:" ''
  111.             AnimPathName = Result
  112.             End
  113.  
  114.         If Right(AnimPathName,1) ~= '/' Then AnimPathName = AnimPathName || '/'
  115.  
  116.         AnimPathDefault = AnimPathName
  117.  
  118.         Finder = Exists(AnimPathName)
  119.         If Finder = 1 Then Leave
  120.         If Finder = 0 Then Okay 'ERROR: Drawer not found!  Try agian...'
  121.         End
  122.  
  123.     Return AnimPathName
  124.  
  125. GetSourceFormat:
  126.     Address 'OpalPaint_Rexx'
  127.     ReqBuild '319 245 "Choose format of SOURCE names"'
  128.     AddBox '5 25 100 65'
  129.     AddBox '109 25 100 65'
  130.     AddBox '213 25 100 65'
  131.     AddHeading '40 30 "Root"'
  132.     AddHeading 'CenterX 30 "Number"'
  133.     AddHeading '230 30 "Extension"'
  134.  
  135.     AddGadget 'String RootGad 11 55 75 20'
  136.     AddGadget 'Cycle NumberGad 122 55 72 20 * xx xxx xxxx xxxxx'
  137.     AddGadget 'String ExtGad 219 55 75 20'
  138.  
  139.     AddText 'CenterX 100 "Remember to put a period in the text"'
  140.     AddText 'CenterX 110 "field if your root/extension is"'
  141.     AddText 'CenterX 120 "sepatated by aperiod."'
  142.     AddText 'CenterX 130 "Examples: pic.0001  005.IFF"'
  143.  
  144.     AddText 'CenterX 145 "The number format of * means the"'
  145.     AddText 'CenterX 155 "number of digits change as the number"'
  146.     AddText 'CenterX 165 "requires it.  All other options have"'
  147.     AddText 'CenterX 175 "a FIXED number of digits."'
  148.  
  149.     AddText 'CenterX 190 "Leave the root or extension blank if"'
  150.     AddText 'CenterX 200 "they are not needed."'
  151.  
  152.     AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
  153.  
  154.     InitGadget 'RootGad "pic."'
  155.     InitGadget 'NumberGad "xxxx"'
  156.  
  157.     Request NoOK NoCancel
  158.  
  159.     GadgetStatus RootGad
  160.     SourceRoot = Result
  161.  
  162.     GadgetStatus NumberGad
  163.     If Result = "*" Then SourceNumberMode = 1
  164.     If Result = "xx" Then SourceNumberMode = 2
  165.     If Result = "xxx" Then SourceNumberMode = 3
  166.     If Result = "xxxx" Then SourceNumberMode = 4
  167.     If Result = "xxxxx" Then SourceNumberMode = 5
  168.  
  169.     GadgetStatus ExtGad
  170.     SourceExt = Result
  171.  
  172.     Return SourceRoot SourceNumberMode SourceExt
  173.  
  174. GetDestinationFormat:
  175.     Address 'OpalPaint_Rexx'
  176.     ReqBuild '319 245 "Choose format of DESTINATION names"'
  177.     AddBox '5 25 100 65'
  178.     AddBox '109 25 100 65'
  179.     AddBox '213 25 100 65'
  180.     AddHeading '40 30 "Root"'
  181.     AddHeading 'CenterX 30 "Number"'
  182.     AddHeading '230 30 "Extension"'
  183.  
  184.     AddGadget 'String RootGad 11 55 75 20'
  185.     AddGadget 'Cycle NumberGad 122 55 72 20 * xx xxx xxxx xxxxx'
  186.     AddGadget 'String ExtGad 219 55 75 20'
  187.  
  188.     AddText 'CenterX 100 "Remember to put a period in the text"'
  189.     AddText 'CenterX 110 "field if your root/extension is"'
  190.     AddText 'CenterX 120 "sepatated by aperiod."'
  191.     AddText 'CenterX 130 "Examples: pic.0001  005.IFF"'
  192.  
  193.     AddText 'CenterX 145 "The number format of 1 means the"'
  194.     AddText 'CenterX 155 "number of digits change as the number"'
  195.     AddText 'CenterX 165 "requires it.  All other options have"'
  196.     AddText 'CenterX 175 "a FIXED number of digits."'
  197.  
  198.     AddText 'CenterX 190 "Leave the root or extension blank if"'
  199.     AddText 'CenterX 200 "they are not needed."'
  200.  
  201.     AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
  202.  
  203.     InitGadget 'RootGad "pic."'
  204.     InitGadget 'NumberGad "xxxx"'
  205.  
  206.     Request NoOK NoCancel
  207.  
  208.     GadgetStatus RootGad
  209.     DestRoot = Result
  210.  
  211.     GadgetStatus NumberGad
  212.     If Result = "*" Then DestNumberMode = 1
  213.     If Result = "xx" Then DestNumberMode = 2
  214.     If Result = "xxx" Then DestNumberMode = 3
  215.     If Result = "xxxx" Then DestNumberMode = 4
  216.     If Result = "xxxxx" Then DestNumberMode = 5
  217.  
  218.     GadgetStatus ExtGad
  219.     DestExt = Result
  220.  
  221.     Return DestRoot DestNumberMode DestExt
  222.  
  223. GetIFF:
  224.     Address 'OpalPaint_Rexx'
  225.  
  226.     If NumberMode = 1 Then Do
  227.         IFF = Root || A || Ext
  228.         End
  229.  
  230.     If NumberMode = 2 Then Do
  231.         IFF = Root || Zero || A || Ext
  232.         If A < 100 & A > 9 Then IFF = Root || A || Ext
  233.         If A > 99 Then Do
  234.             Okay 'FATAL ERROR!  This number format does not allow numbers\nhigher than 99!\n\nExiting...'
  235.             Exit
  236.             End
  237.         End
  238.  
  239.     If NumberMode = 3 Then Do
  240.         IFF = Root || Zero || Zero || A || Ext
  241.         If A < 1000 & A > 99 Then IFF = Root || A || Ext
  242.         If A < 100 & A > 9 Then IFF = Root || Zero || A || Ext
  243.         If A > 999 Then Do
  244.             Okay 'FATAL ERROR!  This number format does not allow numbers\nhigher than 999!\n\nExiting...'
  245.             Exit
  246.             End
  247.         End
  248.  
  249.     If NumberMode = 4 Then Do
  250.         IFF = Root || Zero || Zero || Zero || A || Ext
  251.         If A < 10000 & A > 999 Then IFF = Root || A || Ext
  252.         If A < 1000 & A > 99 Then IFF = Root || Zero || A || Ext
  253.         If A < 100 & A > 9 Then IFF = Root || Zero || Zero || A || Ext
  254.         If A > 9999 Then Do
  255.             Okay 'FATAL ERROR!  This number format does not allow numbers\nhigher than 9999!\n\nExiting...'
  256.             Exit
  257.             End
  258.         End
  259.  
  260.     If NumberMode = 5 Then Do
  261.         IFF = Root || Zero || Zero || Zero || Zero || A || Ext
  262.         If A < 100000 & A > 9999 Then IFF = Root || A || Ext
  263.         If A < 10000 & A > 999 Then IFF = Root || Zero || A || Ext
  264.         If A < 1000 & A > 99 Then IFF = Root || Zero || Zero || A || Ext
  265.         If A < 100 & A > 9 Then IFF = Root || Zero || Zero || Zero || A || Ext
  266.         If A > 99999 Then Do
  267.             Okay 'FATAL ERROR!  This number format does not allow numbers\nhigher than 99999!\n\nExiting...'
  268.             Exit
  269.             End
  270.         End
  271.  
  272.     Return IFF
  273.  
  274. GetDestIFF:
  275.  
  276.     Return
  277.  
  278. GetStartFrame:
  279.     Address 'OpalPaint_Rexx'
  280.     ReqBuild '210 97 "Enter Start Frame Number"'
  281.     AddBox '5 25 199 39'
  282.  
  283.     AddGadget 'Integer StartGad CenterX 35 50 10 1 9999'
  284.  
  285.     AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
  286.     Request NoOK NoCancel
  287.  
  288.     GadgetStatus StartGad
  289.     StartFrame = Result
  290.  
  291.     Return StartFrame
  292.  
  293. GetEndFrame:
  294.     Address 'OpalPaint_Rexx'
  295.     ReqBuild '210 97 "Enter Final Frame Number"'
  296.     AddBox '5 25 199 39'
  297.  
  298.     AddGadget 'Integer EndGad CenterX 35 50 10 ' || StartFrame || ' 9999'
  299.  
  300.     AddGadget 'Button OkayButton CenterX -5 Medium "Proceed"'
  301.     InitGadget EndGad (StartFrame + 1)
  302.     Request NoOK NoCancel
  303.  
  304.     GadgetStatus EndGad
  305.     EndFrame = Result
  306.  
  307.     Return EndFrame
  308.  
  309. VerifyFrames:
  310.     Address 'OpalPaint_Rexx'
  311.     Menu ENABLE
  312.     DisplayStatus 'Verify...'
  313.     Do A = StartFrame to EndFrame
  314.  
  315.         NumberMode = SourceNumberMode
  316.         Root = SourceRoot
  317.         Ext = SourceExt
  318.         Call GetIFF()
  319.         SourceIFF = IFF
  320.  
  321.         NumberMode = DestNumberMode
  322.         Root = DestRoot
  323.         Ext = DestExt
  324.         Call GetIFF()
  325.         DestIFF = IFF
  326.  
  327.         Finder = Exists(AnimPathName || SourceIFF)
  328.         If Finder = 0 Then Do
  329.             Okay 'FATAL ERROR! ' || AnimPathName || SourceIFF || ' not found!\n\nExiting...'
  330.             Exit
  331.             End
  332.         Finder = Exists(AnimPathName || DestIFF)
  333.         If Finder = 1 & DestNumberMode ~= 1 Then Do
  334.             Okay 'FATAL ERROR! A ' || AnimPathName || DestIFF || ' already exists!\n\nExiting...'
  335.             Exit
  336.             End
  337.         End
  338.     Return
  339.  
  340. RenameFrames:
  341.     Address 'OpalPaint_Rexx'
  342.     DisplayStatus 'Rename...'
  343.     Do A = StartFrame to EndFrame
  344.  
  345.         NumberMode = SourceNumberMode
  346.         Root = SourceRoot
  347.         Ext = SourceExt
  348.         Call GetIFF()
  349.         SourceIFF = IFF
  350.  
  351.         NumberMode = DestNumberMode
  352.         Root = DestRoot
  353.         Ext = DestExt
  354.         Call GetIFF()
  355.         DestIFF = IFF
  356.  
  357.         If SourceIFF ~= DestIFF Then Do
  358.             Address Command
  359.             'Rename ' || AnimPathName || SourceIFF || ' ' || AnimPathName || DestIFF || ' QUIET'
  360.             End
  361.         If SourceIFF = DestIFF & DestNumberMode ~= 1 Then Do
  362.             Address 'OpalPaint_Rexx'
  363.             Okay 'FATAL ERROR!  ' || AnimPathName || DestIFF || ' already exists!\n\nExiting...'
  364.             End
  365.  
  366.         End
  367.     Return
  368.  
  369. AllDone:
  370.     Address 'OpalPaint_Rexx'
  371.  
  372.     Menu DISABLE
  373.  
  374.     ReqBuild '200 65 "Operation Complete!"'
  375.  
  376.     AddGadget 'Button OkayButton CenterX -5 Medium "Quit"'
  377.     Request NoOK NoCancel
  378.  
  379.     Return
  380.  
  381. NoChanges:
  382.     Address 'OpalPaint_Rexx'
  383.  
  384.     Menu DISABLE
  385.  
  386.     ReqBuild '200 65 "No changes made."'
  387.  
  388.     AddGadget 'Button OkayButton CenterX -5 Medium "Quit"'
  389.     Request NoOK NoCancel
  390.  
  391.     Return
  392.